package com.indusfo.spc.pda.mapper;

import com.indusfo.spc.pda.pojo.CallmatDosing;
import com.indusfo.spc.pda.pojo.CallmatDto;
import com.indusfo.spc.pojo.Mat;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author louk
 * @Description 
 * @Date 2019/12/20 10:54
 * @Param 
 * @return 
 **/
public interface CallmatDosingMapper {
    int deleteByPrimaryKey(Integer callmatDosingId);

    /**
     * 新增叫料记录
     * @param callmatDosing
     * @return
     */
    int insert(CallmatDosing callmatDosing);

    int insertSelective(CallmatDosing record);

    CallmatDosing selectByPrimaryKey(Integer callmatDosingId);

    int updateByPrimaryKeySelective(CallmatDosing record);

    int updateByPrimaryKey(CallmatDosing record);

    /**
     * 查询未叫料记录
     * @param callmatDosing
     * @return
     */
    List<CallmatDto> queryNotCallmatDosing(CallmatDosing callmatDosing);

    /**
     * 未叫料记录计数
     * @param callmatDosing
     * @return
     */
    int countNotCallmatDosing(CallmatDosing callmatDosing);

    @MapKey("matCode")
    Map<String, Mat> queryMat();

    int queryByMatId(@Param("matId") Integer matId);
    /**
     * 叫料成功后查询该物料信息
     */
    CallmatDto callMatDoSingSuccess(@Param("matId") Integer matId);

    /**
     * 根据物料id查询叫料信息
     * @param callmatDosing
     * @return
     */
    CallmatDosing queryCallmatDosing(CallmatDosing callmatDosing);

    /**
     * 查询是否配送完成
     * @param callmatDosing
     * @return
     */
    List<CallmatDosing> queryFinishCallmat(CallmatDosing callmatDosing);

    /**
     * 更新叫料记录
     * @param callmatDosing
     * @return
     */
    int updateCallmatDosing(CallmatDosing callmatDosing);

    /**
     * 更新超市叫料配送状态
     * @param callmatDosingId
     * @return
     */
    int updateDosingState(@Param("callmatDosingId") Integer callmatDosingId);
}